package com.xydtech.busiflw.mapper;

import com.xydtech.busiflw.domain.BusiflWaitTask;

import java.util.List;

/**
 * 待办任务Mapper接口
 *
 * @author JHON
 * @date 2021-06-11
 */
public interface BusiflWaitTaskMapper {
    /**
     * 查询待办任务
     *
     * @param taskId 待办任务ID
     * @return 待办任务
     */
    public BusiflWaitTask selectBusiflWaitTaskById(Long taskId);

    /**
     * 查询待办任务列表
     *
     * @param busiflWaitTask 待办任务
     * @return 待办任务集合
     */
    public List<BusiflWaitTask> selectBusiflWaitTaskList(BusiflWaitTask busiflWaitTask);

    /**
     * 查询已提交任务列表
     *
     * @param busiflWaitTask 待办任务
     * @return 待办任务集合
     */
    public List<BusiflWaitTask> selectHasSubmitTaskList(BusiflWaitTask busiflWaitTask);


    /**
     * 查询已结束任务列表
     *
     * @param busiflWaitTask 待办任务
     * @return 待办任务集合
     */
    public List<BusiflWaitTask> selectCloseTaskList(BusiflWaitTask busiflWaitTask);

    /**
     *查询并发指定状态任务数
     * @Title: selectHandledWaitTaskList
     * @param busiflWaitTask
     * @return java.util.List<com.xydtech.busiflw.domain.BusiflWaitTask>
     * @exception
     * @author JHON
     * @Date 2021/11/30 11:09
     **/
    public List<BusiflWaitTask> selectHandledWaitTaskList(BusiflWaitTask busiflWaitTask);

    /**
     * 新增待办任务
     *
     * @param busiflWaitTask 待办任务
     * @return 结果
     */
    public int insertBusiflWaitTask(BusiflWaitTask busiflWaitTask);

    /**
     * 迁移待办任务数据导历史待办
     *
     * @param busiflWaitTask 待办任务
     * @return 结果
     */
    public int insertHistoryWaitTask(BusiflWaitTask busiflWaitTask);

    /**
     * 修改待办任务
     *
     * @param busiflWaitTask 待办任务
     * @return 结果
     */
    public int updateBusiflWaitTask(BusiflWaitTask busiflWaitTask);

    /**
     * 关闭当前节点所有待办任务
     *
     * @param busiflWaitTask 待办任务
     * @return 结果
     */
    public int updateAllBusiflWaitTask(BusiflWaitTask busiflWaitTask);

    /**
     *更新其他人的任务
     * @Title: updateOtherUserBusiflWaitTask
     * @param busiflWaitTask
     * @return int
     * @exception
     * @author JHON
     * @Date 2021/11/27 16:56
     **/
    public int updateOtherUserBusiflWaitTask(BusiflWaitTask busiflWaitTask);

    /**
     * 删除待办任务
     *
     * @param taskId 待办任务ID
     * @return 结果
     */
    public int deleteBusiflWaitTaskById(Long taskId);

    /**
     * 删除待办任务
     *
     * @param instanceId 任务实例ID
     * @return 结果
     */
    public int deleteBusiflWaitTaskByInstanceId(String instanceId);

    /**
     * 批量删除待办任务
     *
     * @param taskIds 需要删除的数据ID
     * @return 结果
     */
    public int deleteBusiflWaitTaskByIds(String[] taskIds);
}
